package com.cn.service;

import com.cn.po.WordWL;

import java.util.List;

public interface WangLuWordService {
    /**
     * 保存
     * @param wordWL
     * @return
     */
    public boolean save(WordWL wordWL);

    /**
     * 修改
     * @param wordWL
     * @return
     */
    public boolean update(WordWL wordWL);

    /**
     * 按id删除
     * @param id
     * @return
     */
    public boolean deleteById(Integer id);

    /**
     * 按id查询
     * @param id
     * @return
     */
    public WordWL getWordById(Integer id);

    /**
     * 按单词名查询
     * @param word
     * @return
     */
    public WordWL getByWord(String word);

    /**
     * 查询全部
     * @return
     */
    public List<WordWL> getAll();

    // 获取所有章节
    List<String> getDistinctChapters();

    // 根据章节和查询条件分页获取单词
    List<WordWL> getWordsByPage(String query, String chapter, int offset, int limit);

    // 获取符合条件的单词总数
    int getTotalCount(String query, String chapter);

    List<WordWL> getWordsByChapter(String chapter);


    List<WordWL> getPaginatedErrorWords(int page, int pageSize);

    //获取错词总数量
    int getErrorWordsCount();

    // 获取指定章节的错误单词
    public List<WordWL> getErrorWordsByChapter(String chapter);


    // 这个方法应当从 error_words 表中查询出 current_error_count 大于等于 1 的单词，并按章节分组返回，以便在错误单词选择页面中显示。
    public List<WordWL> getWordsWithErrors();



    public void updateErrorCounts(List<Integer> errorWordIds);

    public void updateErrorAndCorrectCounts(List<Integer> errorWordIds,List<Integer> correctIds);

}
